from django.contrib.sitemaps import Sitemap
from django.urls import reverse

from .models import Post

#实现sitemap
#与Feed类似，都是输出文章列表，但是格式和内容均不同
class PostSitemap(Sitemap):
    changefreq="always"
    priority=1.0
    protocol='https'

    def items(self):
        return Post.objects.filter(status=Post.STATUS_NORMAL)
    
    def lastmod(self,obj):
        return obj.created_time
    
    def location(self,obj):
        return reverse('post-detail',args=[obj.pk])
    
    # 这段代码中实现了3个方法，items返回所有正常状态的文章，lastmod返回每篇文章的创建时间
    # （或者最近更新时间），location返回每篇文章的url